*embed* license allows to convert a NeurEco Tabular model to a Keras model. 

.. note:: 
  * This feature is only available for the Python API.
  * This feature requires an existing installation of TensorFlow 2.x and Keras.

Import the **NeurEco2Keras** library:

.. code-block:: python


  from NeurEco import NeurEco2Keras

**neureco2keras** method of NeurEco2Keras library converts a NeurEco Tabular model to a Keras model.

.. code-block:: python

  neureco2keras(neureco_model, keras_model_name=None)

Converts a NeurEco Tabular object to a Keras model

:param neureco_model: NeurEco.NeurEcoTabular: The model to convert
:param keras_model_name: str, optional: name to assign to the created Keras model, default name is "NeurEco_Keras_Model"

:return: Keras model in float32 precision

.. code-block:: python

  keras_model = NeurEco2Keras.neureco2keras(neureco_model)

| The obtained **keras_model** is now ready to be used as a usual Keras model.
| For example, print its summary (here, the result is for illustrative purposes only) and evaluate it:


	
.. code-block:: python
    
  ''' print Keras model summary '''
  keras_model.summary()

  ''' evaluate the model using Keras '''
  keras_output = keras_model.predict(numpy_input_array.astype("float32"))

.. code-block:: text

  Model: "EnergyConsumption_NeurEco_Keras_Model"
  _________________________________________________________________
  Layer (type)                 Output Shape              Param #
  =================================================================
  input (InputLayer)           [(None, 5)]               0
  _________________________________________________________________
  tf_op_layer_centeredInputs ( [(None, 5)]               0
  _________________________________________________________________
  tf_op_layer_normalizedInputs [(None, 5)]               0
  _________________________________________________________________
  adagos_gemm (AdagosGemm)     (None, 8)                 48
  _________________________________________________________________
  tf_op_layer_x1TensorActivati [(None, 8)]               0
  _________________________________________________________________
  adagos_gemm_1 (AdagosGemm)   (None, 1)                 9
  _________________________________________________________________
  tf_op_layer_outputDescaled ( [(None, 1)]               0
  _________________________________________________________________
  tf_op_layer_output (TensorFl [(None, 1)]               0
  =================================================================
  Total params: 57
  Trainable params: 57
  Non-trainable params: 0
  _________________________________________________________________


.. note::
   
  The number of weights in original NeurEco model .ednn is slightly different than the number of trainable parameters in obtained Keras model. This is because the Keras models are intrinsically fully connected, and some of the weights are present in the Keras model although they are not needed (they have a value of 0).

.. note::

  See :std:ref:`Tutorial converting a NeurEco Regression model to a Keras model` for a full example of usage.

